/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.uniminuto.edu.gimnasioInteligente.entities;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author diegoalejandro
 */
@Entity
@Table(name = "programacion_evento")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "ProgramacionEvento.findAll", query = "SELECT p FROM ProgramacionEvento p"),
    @NamedQuery(name = "ProgramacionEvento.findByIdProgramacionEvento", query = "SELECT p FROM ProgramacionEvento p WHERE p.idProgramacionEvento = :idProgramacionEvento"),
    @NamedQuery(name = "ProgramacionEvento.findByFecha", query = "SELECT p FROM ProgramacionEvento p WHERE p.fecha = :fecha"),
    @NamedQuery(name = "ProgramacionEvento.findByLugarFisico", query = "SELECT p FROM ProgramacionEvento p WHERE p.lugarFisico = :lugarFisico")})
public class ProgramacionEvento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "idProgramacion_Evento")
    private Integer idProgramacionEvento;
    @Column(name = "fecha")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecha;
    @Size(max = 255)
    @Column(name = "lugarFisico")
    private String lugarFisico;
    @JoinColumn(name = "Usuario_idUsuario", referencedColumnName = "idUsuario")
    @ManyToOne(optional = false)
    private Usuario usuarioidUsuario;
    @JoinColumn(name = "Sede_idSede", referencedColumnName = "idSede")
    @ManyToOne(optional = false)
    private Sede sedeidSede;
    @JoinColumn(name = "Actividad_idActividad", referencedColumnName = "idActividad")
    @ManyToOne(optional = false)
    private Actividad actividadidActividad;

    public ProgramacionEvento() {
    }

    public ProgramacionEvento(Integer idProgramacionEvento) {
        this.idProgramacionEvento = idProgramacionEvento;
    }

    public Integer getIdProgramacionEvento() {
        return idProgramacionEvento;
    }

    public void setIdProgramacionEvento(Integer idProgramacionEvento) {
        this.idProgramacionEvento = idProgramacionEvento;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public String getLugarFisico() {
        return lugarFisico;
    }

    public void setLugarFisico(String lugarFisico) {
        this.lugarFisico = lugarFisico;
    }

    public Usuario getUsuarioidUsuario() {
        return usuarioidUsuario;
    }

    public void setUsuarioidUsuario(Usuario usuarioidUsuario) {
        this.usuarioidUsuario = usuarioidUsuario;
    }

    public Sede getSedeidSede() {
        return sedeidSede;
    }

    public void setSedeidSede(Sede sedeidSede) {
        this.sedeidSede = sedeidSede;
    }

    public Actividad getActividadidActividad() {
        return actividadidActividad;
    }

    public void setActividadidActividad(Actividad actividadidActividad) {
        this.actividadidActividad = actividadidActividad;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idProgramacionEvento != null ? idProgramacionEvento.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ProgramacionEvento)) {
            return false;
        }
        ProgramacionEvento other = (ProgramacionEvento) object;
        if ((this.idProgramacionEvento == null && other.idProgramacionEvento != null) || (this.idProgramacionEvento != null && !this.idProgramacionEvento.equals(other.idProgramacionEvento))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "co.uniminuto.edu.gimnasioInteligente.entities.ProgramacionEvento[ idProgramacionEvento=" + idProgramacionEvento + " ]";
    }
    
}
